Location: BondGraph Basic @ 6a21cb8f4868 / BG Tutorial Mechanical Systems / Mechanics 3.cellml

Author:
Soroush Safaei <ssaf006@aucklanduni.ac.nz>
Date:
2017-06-18 19:56:08+12:00
Desc:
merge
Permanent Source URI:
https://models.fieldml.org/workspace/43b/rawfile/6a21cb8f486848f6039a0c8dd5df2b07672874ef/BG Tutorial Mechanical Systems/Mechanics 3.cellml

<?xml version='1.0'?>
<model name="aero" xmlns="http://www.cellml.org/cellml/1.1#" xmlns:cellml="http://www.cellml.org/cellml/1.1#">
    <units name="radian_per_s">
        <unit units="radian"/>
        <unit exponent="-1" units="second"/>
    </units>
    <units name="J_per_m">
        <unit units="joule"/>
        <unit exponent="-1" units="metre"/>
    </units>
    <units name="m_per_s">
        <unit units="metre"/>
        <unit exponent="-1" units="second"/>
    </units>
    <units name="m_per_s2">
        <unit units="metre"/>
        <unit exponent="-2" units="second"/>
    </units>
    <units name="m2_per_J">
        <unit exponent="2" units="metre"/>
        <unit exponent="-1" units="joule"/>
    </units>
    <units name="Js_per_m2">
        <unit units="joule"/>
        <unit units="second"/>
        <unit exponent="-2" units="metre"/>
    </units>
    <units name="J_per_m2">
        <unit units="joule"/>
        <unit exponent="-2" units="metre"/>
    </units>
    <units name="Js2_per_m2">
        <unit units="joule"/>
        <unit exponent="2" units="second"/>
        <unit exponent="-2" units="metre"/>
    </units>
    <component name="main">
        <variable initial_value="0" name="t" units="second"/>
        <variable initial_value="1" name="r0" units="metre"/>
        <!-- State variables-->
        <variable initial_value="1" name="theta" units="radian"/>
        <variable name="omega" units="radian_per_s"/>
        <variable initial_value="4.905" name="q1" units="metre"/>
        <variable initial_value="-10" name="v1" units="m_per_s"/>
        <variable initial_value="0" name="v2" units="m_per_s"/>
        <!-- Constitutive parameters-->
        <variable initial_value="9.81" name="g" units="m_per_s2"/>
        <variable initial_value="200" name="E1" units="J_per_m2"/>
        <variable initial_value="0.1" name="R1" units="Js_per_m2"/>
        <variable initial_value="100" name="M1" units="Js2_per_m2"/>
        <variable name="u3" units="J_per_m"/>
        <!-- Equations-->
        <math xmlns="http://www.w3.org/1998/Math/MathML">
            <apply>
                <eq/>
                <ci>omega</ci>
                <apply>
                    <divide/>
                    <ci>v2</ci>
                    <apply>
                        <plus/>
                        <ci>r0</ci>
                        <ci>q1</ci>
                    </apply>
                </apply>
            </apply>
            <apply>
                <eq/>
                <ci>u3</ci>
                <apply>
                    <divide/>
                    <apply>
                        <times/>
                        <ci>E1</ci>
                        <apply>
                            <plus/>
                            <ci>q1</ci>
                            <apply>
                                <abs/>
                                <ci>q1</ci>
                            </apply>
                        </apply>
                    </apply>
                    <cn cellml:units="dimensionless">2</cn>
                </apply>
            </apply>
            <apply>
                <eq/>
                <apply>
                    <diff/>
                    <bvar>
                        <ci>t</ci>
                    </bvar>
                    <ci>theta</ci>
                </apply>
                <ci>omega</ci>
            </apply>
            <apply>
                <eq/>
                <apply>
                    <diff/>
                    <bvar>
                        <ci>t</ci>
                    </bvar>
                    <ci>q1</ci>
                </apply>
                <ci>v1</ci>
            </apply>
            <!--        ode(v1, t) = (r0+q1)*omega*omega-(E1*q1+R1*v1)/M1+g*cos(theta);-->
            <apply>
                <eq/>
                <apply>
                    <diff/>
                    <bvar>
                        <ci>t</ci>
                    </bvar>
                    <ci>v1</ci>
                </apply>
                <apply>
                    <plus/>
                    <apply>
                        <minus/>
                        <apply>
                            <times/>
                            <apply>
                                <plus/>
                                <ci>r0</ci>
                                <ci>q1</ci>
                            </apply>
                            <ci>omega</ci>
                            <ci>omega</ci>
                        </apply>
                        <apply>
                            <divide/>
                            <apply>
                                <plus/>
                                <ci>u3</ci>
                                <apply>
                                    <times/>
                                    <ci>R1</ci>
                                    <ci>v1</ci>
                                </apply>
                            </apply>
                            <ci>M1</ci>
                        </apply>
                    </apply>
                    <apply>
                        <times/>
                        <ci>g</ci>
                        <apply>
                            <cos/>
                            <ci>theta</ci>
                        </apply>
                    </apply>
                </apply>
            </apply>
            <apply>
                <eq/>
                <apply>
                    <diff/>
                    <bvar>
                        <ci>t</ci>
                    </bvar>
                    <ci>v2</ci>
                </apply>
                <apply>
                    <minus/>
                    <apply>
                        <times/>
                        <apply>
                            <minus/>
                            <ci>omega</ci>
                        </apply>
                        <ci>v1</ci>
                    </apply>
                    <apply>
                        <times/>
                        <ci>g</ci>
                        <apply>
                            <sin/>
                            <ci>theta</ci>
                        </apply>
                    </apply>
                </apply>
            </apply>
        </math>
    </component>
</model>